home *** CD-ROM | disk | FTP | other *** search
- /* array2.c: Traverses an array with an index and a pointer */
- #include <stdio.h>
-
- main()
- {
- int a[] = {0,1,2,3,4};
- int i, *p;
- size_t n = sizeof a / sizeof a[0];
-
- /* Print using array index */
- for (i = 0; i < n; ++i)
- printf("%d ",a[i]);
- putchar('\n');
-
- /* You can even swap a and i (but don't) */
- for (i = 0; i < n; ++i)
- printf("%d ",i[a]);
- putchar('\n');
-
- /* Print using a pointer */
- p = a;
- while (p < a+n)
- printf("%d ",*p++);
- putchar('\n');
-
- /* Using index notation with pointer is OK */
- for (p = a, i = 0; i < n; ++i)
- printf("%d ",p[i]);
- putchar('\n');
-
- /* Using pointer notation with array is OK */
- for (i = 0; i < n; ++i)
- printf("%d ",*(a+i));
- putchar('\n');
-
- /* Print backwards using pointer */
- p = a + n-1;
- while (p >= a)
- printf("%d ",*p--);
- putchar('\n');
-
- /* Negative subscripts are allowed */
- for (i = 0, p = a + n-1; i < n; ++i)
- printf("%d ",p[-i]);
- putchar('\n');
- return 0;
- }
-
- /* Output
- 0 1 2 3 4
- 0 1 2 3 4
- 0 1 2 3 4
- 0 1 2 3 4
- 0 1 2 3 4
- 4 3 2 1 0
- 4 3 2 1 0
- */
-
-